<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>字符串的遍历器接口</title>
</head>
<body>
  <script>
    // es6为字符串添加了遍历器接口，使得字符串可以被for...of循环遍历
    for(let codePoint of 'foo') {
      console.log(codePoint)
    }
    // 'f'
    // 'o'
    // 'o'
    // 除了遍历字符串，这个遍历器最大的优点是可以识别大于0XFFFF的码点，传统的for循环无法识别

    let text = String.fromCodePoint(0X20BB7);
    for (let i = 0; i < text.length; i++) {
      console.log(text[i])
    }
    // 乱码
    // 乱码
    for (let i of text) {
      console.log(i)
    }
    // "𠮷"
    /*
    上面代码中，字符串text只有一个字符，但是for循环会认为它包含俩个字符(都不可打印)，
    而for...of循环会正确的识别出这一个字符。
    */
  </script>
</body>
</html>